The present invention generally relates to the arbitration of shared system resources, such as a bus or memory, and particularly relates to arbitration diagnostics.
Contemporary electronic devices incorporate increasingly sophisticated processing systems to handle various operational functions. For example, mobile communication handsets, handheld gaming systems, portable digital assistants, etc., provide an increasing wealth of multimedia functions supported by graphics, audio, communication, and display processing subsystems. The different subsystems generally include dedicated hardware and software processing elements, but they commonly share selected system resources, such as memory, buses, etc.
In such systems, “arbiters” coordinate shared resource accesses by competing entities, based on granting, denying, and deferring access requests made by individual ones of the competing entities. For example, a bus arbiter manages access to a shared system bus by two or more processing subsystems, each needing independent access to the bus. In this role, the arbiter grants bus access temporarily to one subsystem, while blocking bus accesses by the other subsystems.
Resource arbitration thus provides a mechanism for coordinated sharing of resources, but it also complicates system diagnostics. For example, in a distributed processing system using resource arbitration, arbitration processing may block a given subsystem from shared resource access for longer than can be tolerated, leading to an overall system fault. Diagnosing arbitration-induced faults presents significant challenges because of the complex processing states involved with the various subsystems, the “inter-relatedness” of these subsystem states, and the general unavailability of comprehensive arbitration state information at the point and time of failure.